Universal Plug and Play™ (UPnP) defines an architecture for pervasive, peer-to-peer networking between all types of consumer electronics, including intelligent appliances, wireless devices, and PCs of all form factors. UPnP technologies provide a way for disparate processing devices to exchange data via proximity or ad hoc networks. The UPnP framework is designed to bring easy-to-use, flexible, standards-based connectivity to ad-hoc or unmanaged networks whether in the home, in a small business, public spaces, or attached to the Internet. UPnP technologies provide a distributed, open networking architecture that leverages TCP/IP and the Web technologies to enable seamless proximity networking in addition to control and data transfer among networked devices.
The UPnP Device Architecture (UDA) is designed to support zero-configuration, “invisible” networking, and automatic discovery for a breadth of device categories from a wide range of vendors. This means a device can dynamically join a network, obtain an IP address, convey its capabilities, and learn about the presence and capabilities of other devices. The UPnP specification includes standards for service discovery. Various contributors publish UPnP device and service descriptions, thus creating a way to easily connect devices and simplifying the implementation of networks. It is the goal of UPnP to enable home electronics to seamlessly interact, thus furthering the usefulness of such devices.
Besides allowing locally connected to devices to intercommunicate, the UPnP standard provides a way for the locally devices to easily access external networks such as the Internet. In many scenarios, it is envisioned that a UPnP Internet Gateway Device (IGD) will reside on the edge of the UPnP network and provide connectivity to a Wide Area Network (WAN), including the Internet. An IGD may be implemented as a standalone device or included in another UPnP device (e.g., a personal computer). Besides allowing local UPnP devices to access the Internet, the IGD may also be configured to allow the user to access devices on the UPnP network via the Internet when the user is away from the local network.
Accessing a home or other local network from an external network is often referred to as remote access. There are currently some technological approaches envisioned to provide remote access to the digital home. Typically, these technologies rely on the IGD or similar fixed device to act as an entry point into the local network. For example, the IGD may be configured to accept connections using Virtual Private Networking (VPN) technologies. VPN uses an encrypted “tunnel” through an untrusted network to securely connect endpoints. A VPN can provide a full range of network connectivity to external devices, and potentially extend the UPnP network to externally networked devices.
However, a VPN connection requires a significant amount of overhead, not only in processing connections, but in setup and maintenance of the VPN. Because a VPN can potentially open the entire local network up to intruders, a number of security precautions must be enforced when implementing a VPN solution. Some types of remote access applications, however, are more limited in scope and therefore a VPN solution is an overly complicated and inconvenient option. Similarly, such remote access may be provided by a UPnP IGD. However, a device such as an IGD is primarily designed for basic routing and firewalling operations, whereas typical P2P applications use functions that are particular to the relevant P2P protocols. Therefore, it may not always be appropriate to control remote access via an IGD for purposes of participating in specialized remote access applications.
One example of a specialized remote access protocol is Internet peer-to-peer (P2P) networking. P2P technologies allow network peers to connect to each other when each party in the P2P network has the same capability. Any of the peers may initiate the communication session with any other of the parties in the network, and the peers may provide different services to each other depending of the P2P implementation. Example P2P protocols include Gnutella, Napster, and Session Initiation Protocol (SIP). The first two protocols are commonly associated with file sharing, and SIP is commonly used for establishing media sessions, including images, voice, sound, etc.
Although a fixed device such as an IGD using VPN may provide access to a home network by elements of an Internet P2P network, the level of access provided by a VPN would be far too great for untrustworthy Internet peers. Further, Internet and other infrastructure-based P2P applications utilize protocols that may be incompatible with UPnP. Therefore, a solution that connects P2P and UPnP networks in a limited fashion is desirable.